package com.haidechizi.i18n.spring.boot.properties;

import com.haidechizi.i18n.common.enums.LanguageTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ConfigurationProperties(prefix = I18nProperties.I18N_PREFIX)
public class I18nProperties {

    public static final String I18N_PREFIX = "i18n";

    /**
     * 国际化翻译使用的策略，默认使用simple
     */
    private String strategyName = "simple";

    /**
     * 前端或者APP传输语言使用的key
     */
    private String i18nLocale = "user_locale";


    /**
     * 系统默认的语言
     */
    private String defaultLanguage = LanguageTypeEnum.zh_CN.getCode();

    /**
     * 用于过滤国际化的系统，防止重复翻译
     */
    private String currentSystemCode = "";

    /**
     * 查询国际化平台是否使用缓存
     */
    private boolean i18nUseCache = false;

    /**
     * 国际化平台缓存的过期时间
     */
    private int i18nUseCacheExpireTime = 300;


    /**
     * 统一处理语言拦截器的拦截规则
     */
    private String i18nLanguageInterceptorPattern = "/**";

    /**
     * spring 项目，翻译动态语言配置AOP的切面规则
     */
    private String aopExecution = "@annotation(com.haidechizi.i18n.annotation.I18nAnnotation) || @within(com.haidechizi.i18n.annotation.I18nAnnotation)";

    /**
     * 配置静态语言国际化的资源文件位置
     */
    private String i18nMessage = "i18n/message";


    /**
     * 静态资源国际化默认参数
     *
     */
    private String defaultEncoding = "utf-8";


}
